package com.itheima.array;

import java.util.Scanner;

/**
 * @Author 王加鑫
 * @Date 2021/4/21 14:11
 * @Version 1.0
 * 已知一个数组 arr = {19, 28, 37, 28, 50}; 键盘录入一个数据，查找该数据在数组中的所有索引,
 * 并将这些索引记录到一个新的数组中，并在控制台输出新数组中的所有元素,例如:
 * 请输入要查找的元素:
 * 28
 * 28在数组中的所有索引是: [1,3]
 */
public class arrayTest09 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要查找的元素:");
        int num = sc.nextInt();
        int[] arr = {19,28,37,28,50,28,37,100,50,28};
        //计数器
        int count = 0;
        /*
        思路:先判断键盘录入的数字是否跟数组中的元素相同
        相同count+1;
         */
        //先遍历数组
        for (int i = 0; i < arr.length; i++) {
            if(arr[i] == num){
                count++;
            }
        }
        System.out.println("count:"+count);

        if(count == 0){
            System.out.println("您输入的数字有误,请重新输入");
        }else {
            /*
             count就是新数组的长度
             j是 newArr数组的下标
             难就难在这里哦!
             */
            int j = 0;
            int[] newArr = new int[count];
            for (int i = 0; i < arr.length; i++) {
                if (num == arr[i]) {
                    newArr[j] = i;
                    j++;
                }
            }
            for (int i = 0; i < newArr.length; i++) {
                //当打印数组中的第一个元素时
                if (i == 0) {
                    if(count == 1){
                        //如果数组中只有一个元素 打印 [1]
                        System.out.println("[" + newArr[i] + "]");
                    }else {
                        //如果数组中有多个元素,就打印 [1,
                        System.out.print("[" + newArr[i] + ", ");
                    }
                    //当打印数组中不是最后一位数的其余数字时,打印 元素+,即可(3,)
                } else if (i != newArr.length - 1) {
                    System.out.print(newArr[i] + ", ");
                } else {
                    //打印数组中最后一位数时,打印 元素+] (5])
                    System.out.println(newArr[i] + "]");
                }
            }
        }
    }
}
